package com.lg.happyfarmer.base;

import android.content.Context;
import android.os.Build;

import com.hemaapp.hm_FrameWork.HemaNetWorker;
import com.hemaapp.hm_FrameWork.HemaUtil;
import com.lg.happyfarmer.nettask.InitTask;

import java.util.HashMap;

import xtom.frame.XtomConfig;
import xtom.frame.util.Md5Util;
import xtom.frame.util.XtomDeviceUuidFactory;
import xtom.frame.util.XtomSharedPreferencesUtil;

/**
 * 网络请求工具类
 */
public class BaseNetWorker extends HemaNetWorker {
    /**
     * 实例化网络请求工具类
     *
     * @param mContext
     */
    private Context mContext;

    public BaseNetWorker(Context mContext) {
        super(mContext);
        this.mContext = mContext;
    }

    @Override
    public void clientLogin() {

    }

    @Override
    public boolean thirdSave() {
        return false;
    }

    /**
     * 系统初始化
     */
    public void init() {
        BaseHttpInformation information = BaseHttpInformation.INIT;
        HashMap<String, String> params = new HashMap<String, String>();
        params.put("lastloginversion", HemaUtil.getAppVersionForSever(mContext));// 版本号码(默认：1.0.0)
        params.put("device_sn", XtomDeviceUuidFactory.get(mContext));// 客户端硬件串号

        BaseNetTask task = new InitTask(information, params);
        executeTask(task);
    }

//    @Override
//    public void clientLogin() {
//        BaseHttpInformation information = BaseHttpInformation.CLIENT_LOGIN;
//        HashMap<String, String> params = new HashMap<String, String>();
//        String username = XtomSharedPreferencesUtil.get(mContext, "username");
//        params.put("username", username);// 用户登录名 手机号或邮箱
//        String password = XtomSharedPreferencesUtil.get(mContext, "password");
//        params.put("password", password); // 登陆密码 服务器端存储的是32位的MD5加密串
//        params.put("devicetype", "2"); // 用户登录所用手机类型 1：苹果 2：安卓（方便服务器运维统计）
//        String version = HemaUtil.getAppVersionForSever(mContext);
//        params.put("lastloginversion", version);// 登陆所用的系统版本号 记录用户的登录版本，方便服务器运维统计
//        String model = Build.MODEL;//手机型号
//        params.put("brand", model);
//        String versionRelease = Build.VERSION.RELEASE;//系统版本
//        params.put("systemversion", versionRelease);
//
//        BaseNetTask task = new ClientLoginTask(information, params);
//        executeTask(task);
//    }
//
//    @Override
//    public boolean thirdSave() {
//        if (HemaUtil.isThirdSave(mContext)) {
//            BaseHttpInformation information = BaseHttpInformation.THIRD_SAVE;
//            HashMap<String, String> params = new HashMap<String, String>();
//            params.put("devicetype", "2"); // 用户登录所用手机类型 1：苹果 2：安卓（方便服务器运维统计）
//            String version = HemaUtil.getAppVersionForSever(mContext);
//            params.put("lastloginversion", version);//             登陆所用的系统版本号,记录用户的登录版本，方便服务器运维统计
//            String thirdtype = XtomSharedPreferencesUtil.get(mContext,
//                    "thirdtype");
//            params.put("thirdtype", thirdtype);// 平台类型 1：微信 2：QQ 3：微博
//            String thirduid = XtomSharedPreferencesUtil.get(mContext,
//                    "thirduid");
//            params.put("thirduid", thirduid);// 平台用户id 该平台唯一的id
//            String avatar = XtomSharedPreferencesUtil.get(mContext,
//                    "avatar");
//            params.put("avatar", avatar);// 平台用户头像 图片地址
//            String nickname = XtomSharedPreferencesUtil.get(mContext,
//                    "nickname");
//            params.put("nickname", nickname);// 平台用户昵称
//            String sex = XtomSharedPreferencesUtil.get(mContext, "sex");
//            params.put("sex", sex);// 姓名 "男"或"女"
//            String username = XtomSharedPreferencesUtil.get(mContext, "mobile");
//            params.put("mobile", username);
//            String unionid = XtomSharedPreferencesUtil.get(mContext, "unionid");
//            params.put("unionid", unionid);
//            String model = Build.MODEL;//手机型号
//            params.put("brand", model);
//            String versionRelease = Build.VERSION.RELEASE;//系统版本
//            params.put("systemversion", versionRelease);
//            BaseNetTask task = new ThirdSaveTask(information, params);
//            executeTask(task);
//            return true;
//        } else {
//            return false;
//        }
//    }
//
//    /**
//     * 第三方登录
//     */
//    public void thirdSave(String thirdtype, String thirduid, String avatar,
//                          String nickname, String sex, String username, String unionid) {
//        BaseHttpInformation information = BaseHttpInformation.THIRD_SAVE;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("devicetype", "2"); // 用户登录所用手机类型 1：苹果 2：安卓（方便服务器运维统计）
//        String version = HemaUtil.getAppVersionForSever(mContext);
//        params.put("lastloginversion", version);// 登陆所用的系统版本号,记录用户的登录版本，方便服务器运维统计
//        params.put("thirdtype", thirdtype);// 平台类型 1：微信 2：QQ
//        params.put("thirduid", thirduid);// 平台用户id 该平台唯一的id
//        params.put("avatar", avatar);// 平台用户头像 图片地址
//        params.put("nickname", nickname);// 平台用户昵称
//        params.put("sex", sex);// 姓名 "男"或"女"
//        params.put("mobile", username);// 绑定的手机号
//        params.put("unionid", unionid);// 平台用户id 该平台唯一的id 需绑定微信公众号
//        String model = Build.MODEL;//手机型号
//        params.put("brand", model);
//        String versionRelease = Build.VERSION.RELEASE;//系统版本
//        params.put("systemversion", versionRelease);
//        BaseNetTask task = new ThirdSaveTask(information, params);
//        executeTask(task);
//    }
//
//    /**
//     * 登录
//     */
//    public void clientLogin(String username, String password) {
//        BaseHttpInformation information = BaseHttpInformation.CLIENT_LOGIN;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("username", username);// 用户登录名 手机号或邮箱
//        params.put("password", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(password)));
////		params.put("password", password); // 登陆密码 服务器端存储的是32位的MD5加密串
//        params.put("devicetype", "2"); // 用户登录所用手机类型 1：苹果 2：安卓（方便服务器运维统计）
//        String version = HemaUtil.getAppVersionForSever(mContext);
//        params.put("lastloginversion", version);// 登陆所用的系统版本号 记录用户的登录版本，方便服务器运维统计
//        String model = Build.MODEL;//手机型号
//        params.put("brand", model);
//        String versionRelease = Build.VERSION.RELEASE;//系统版本
//        params.put("systemversion", versionRelease);
//        BaseNetTask task = new ClientLoginTask(information, params);
//        executeTask(task);
//    }
//
//    /**
//     * 验证用户名是否合法
//     */
//    public void clientVerify(String username) {
//        BaseHttpInformation information = BaseHttpInformation.CLIENT_VERIFY;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("username", username);// 用户登录名 手机号或邮箱
//
//        BaseNetTask task = new CmnNetTask(information, params);
//        executeTask(task);
//    }
//
//    /**
//     * 申请随机验证码
//     */
//    public void codeGet(String username) {
//        BaseHttpInformation information = BaseHttpInformation.CODE_GET;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("username", username);// 用户登录名 手机号或邮箱
//
//        BaseNetTask task = new CmnNetTask(information, params);
//        executeTask(task);
//    }
//
//    /**
//     * 验证随机码
//     */
//    public void codeVerify(String username, String code) {
//        BaseHttpInformation information = BaseHttpInformation.CODE_VERIFY;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("username", username);// 用户登录名 手机号或邮箱
//        params.put("code", code);// 6位随机号码 测试阶段固定向服务器提交“123456”
//
//        BaseNetTask task = new CodeVerifyTask(information, params);
//        executeTask(task);
//    }
//
//    /**
//     * 用户注册
//     */
//    public void clientAdd(String temp_token, String mobile, String address, String username, String password,
//                          String invitename, String district_name) {
//        BaseHttpInformation information = BaseHttpInformation.CLIENT_ADD;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("temp_token", temp_token);// 临时令牌 可以有效防止机器人恶意注册（该值从验证随机码接口获取）
//        params.put("username", username);// 用户注册名 本项目只允许邮箱注册 (客户端判断所填文本是否符合邮件格式)
//        params.put("password", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(password)));
////		params.put("password", password);// 登陆密码
//        params.put("invitename", invitename);// 用户昵称
//        params.put("district_name", district_name);// 地区，例如济南市
//        params.put("mobile", mobile);//
//        params.put("address", address);//
//        params.put("devicetype", "2"); // 用户登录所用手机类型 1：苹果 2：安卓（方便服务器运维统计）
//
//        BaseNetTask task = new ClientAddTask(information, params);
//        executeTask(task);
//    }
//
//    /**
//     * 保存用户资料
//     */
//    public void clientSave(String token, String nickname, String sex, String mobile, String address, String selfsign, String age) {
//        BaseHttpInformation information = BaseHttpInformation.CLIENT_SAVE;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("token", token);// 登陆令牌
//        params.put("nickname", nickname);// 用户昵称
//        params.put("sex", sex);// 性别 男或女
//        params.put("mobile", mobile);// 联系电话	可选传参数
//        params.put("address", address);//详细地址	可选传参数
//        params.put("selfsign", selfsign);//个性签名 	可选传参数
//        params.put("age", age);//年龄 	可选传参数
//
//        BaseNetTask task = new CmnNetTask(information, params);
//        executeTask(task);
//    }
//
//    /**
//     * 保存农户资料
//     */
//    public void farmerSave(String token, String nickname, String sex, String mobile, String address, String age, String familycount, String salecontent) {
//        BaseHttpInformation information = BaseHttpInformation.CLIENT_SAVE;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("token", token);// 登陆令牌
//        params.put("nickname", nickname);// 用户昵称
//        params.put("sex", sex);// 性别 男或女
//        params.put("mobile", mobile);// 联系电话	可选传参数
//        params.put("address", address);//详细地址	可选传参数
//        params.put("age", age);//年龄 	可选传参数
//        params.put("familycount", familycount);
//        params.put("salecontent", salecontent);
//
//        BaseNetTask task = new CmnNetTask(information, params);
//        executeTask(task);
//    }
//
//    /**
//     * 上传文件（图片，音频，视频）
//     */
//    public void fileUpload(String token, String keytype, String keyid,
//                           String duration, String orderby, String content, String temp_file) {
//        BaseHttpInformation information = BaseHttpInformation.FILE_UPLOAD;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("token", token);//
//        params.put("keytype", keytype); //上传操作类型
//        params.put("keyid", keyid); //
//        params.put("duration", duration); //
//        params.put("orderby", orderby); //
//        params.put("content", content);
//
//        HashMap<String, String> files = new HashMap<String, String>();
//        files.put("temp_file", temp_file); //
//
//        BaseNetTask task = new FileUploadTask(information, params, files);
//        executeTask(task);
//    }
//
//    /**
//     * 上传文件（图片，音频，视频）
//     */
//    public void fileUploadPIC(String token, String keytype, String keyid,
//                              String duration, String orderby, String content, String temp_file) {
//        BaseHttpInformation information = BaseHttpInformation.FILE_UPLOAD;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("token", token);//
//        params.put("keytype", keytype); //上传操作类型
//        params.put("keyid", keyid); //
//        params.put("duration", duration); //
//        params.put("orderby", orderby); //
//        params.put("content", content);
//
//        HashMap<String, String> files = new HashMap<String, String>();
//        files.put("temp_file", temp_file); //
//
//        BaseNetTask task = new FileUploadTask(information, params, files);
//        executeTask(task);
//    }
//
//    /**
//     * 重设密码
//     */
//    public void passwordReset(String temp_token, String new_password,
//                              String keytype) {
//        BaseHttpInformation information = BaseHttpInformation.PASSWORD_RESET;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("temp_token", temp_token);// 临时令牌
//        params.put("new_password", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(new_password)));
////		params.put("new_password", new_password);// 新密码
//        params.put("keytype", keytype);// 密码类型 1：登陆密码 2：支付密码
//
//        BaseNetTask task = new CmnNetTask(information, params);
//        executeTask(task);
//    }
//
//    /**
//     * 修改并保存密码
//     */
//    public void passwordSave(String token, String keytype, String old_password,
//                             String new_password) {
//        BaseHttpInformation information = BaseHttpInformation.PASSWORD_SAVE;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("token", token);// 登陆令牌
//        params.put("keytype", keytype);// 密码类型 1：登陆密码 2：支付密码
//        params.put("old_password", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(old_password)));// 旧密码
//        params.put("new_password", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(new_password)));// 新密码
////		params.put("old_password", old_password);// 旧密码
////		params.put("new_password", new_password);// 新密码
//
//        BaseNetTask task = new CmnNetTask(information, params);
//        executeTask(task);
//    }
//
//    /**
//     * 硬件注册保存
//     */
//    public void deviceSave(String token, String deviceid, String channelid) {
//        BaseHttpInformation information = BaseHttpInformation.DEVICE_SAVE;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("token", token);// 登陆令牌
//        params.put("deviceid", deviceid);// 登陆手机硬件码 对应百度推送userid
//        params.put("devicetype", "2");// 登陆手机类型 1:苹果 2:安卓
//        params.put("channelid", channelid);// 百度推送渠道id 方便直接从百度后台进行推送测试
//
//        BaseNetTask task = new CmnNetTask(information, params);
//        executeTask(task);
//    }


//    /**
//     * 退出登录
//     */
//    public void clientLoginout(String token) {
//        BaseHttpInformation information = BaseHttpInformation.CLIENT_LOGINOUT;
//        HashMap<String, String> params = new HashMap<String, String>();
//        params.put("token", token);// 登陆令牌
//
//        BaseNetTask task = new CmnNetTask(information, params);
//        executeTask(task);
//    }


}
